"""
    综合练习 定义敌人类：
        数据成员：姓名，血量，基础攻击力，防御力
        行为成员：打印敌人信息
    需求：    
        1. 创建敌人列表（至少4个元素），并画出内存图。
        2. 查找姓名是“灭霸”的敌人对象
        3. 查找所有死亡的敌人
        4. 计算所有敌人的平均攻击力
        5. 删除防御力小于10的敌人
        6. 将所有敌人攻击力增加50
"""

class Enemy():
    def __init__(self, name: str, blood: int, atk: int, defenes: int):
        """
        数据成员

        :param name: [敌人名字]
        :type name: [字符串]
        :param blood: [血量]
        :type blood: [int]
        :param atk: [攻击力]
        :type atk: [int]
        :param defenes: [防御力]
        :type defenes: [int]
        """
        self.name = name
        self.blood = blood
        self.atk = atk
        self.defenes = defenes
    
    def print_info(self):
        """
        行为成员
        """
        print(f"敌人{self.name}，血量为：{self.blood}，攻击力为：{self.atk}，防御力为：{self.defenes}")
        
        
      
# 1. 创建敌人列表（至少4个元素），并画出内存图。
enemy_list = [
    Enemy("泰克", 100, 30, 20),
    Enemy("灭霸", 100, 100, 20),
    Enemy("张三", 100, 32, 5),
    Enemy("李四", 0, 50, 20)
]


# 2. 查找姓名是“灭霸”的敌人对象
def get_enemy():
    for set in enemy_list:
        if set.name == "灭霸":
            return set.name
print(f"2.查找姓名是“灭霸”的敌人对象有:{Enemy.get_enemy()}.")

# 3. 查找所有死亡的敌人
def get_die_enemy():
    for get in enemy_list:
        if get.blood == 0:
            return get.name
print(f"死亡的敌人有：{get_die_enemy()}")

# 4. 计算所有敌人的平均攻击力
def get_average_enemy():
    count = 0
    for i in enemy_list:
        count += i.atk
    k = len(enemy_list)
    li = count / k
    
    return li
            
print(f"所有敌人的平均攻击力为：{get_average_enemy()}")

# 5. 删除防御力小于10的敌人
def re_enemy():
    for i in enemy_list:
        if i.defenes <= 10:
            enemy_list.remove(i)
re_enemy()
        

# 6. 将所有敌人攻击力增加50
def add_blood():
    for i in enemy_list:
        i.blood += 50
add_blood()
   


 